Business processes are subject to frequent changes. The changes may be due to such factors, for example, as a shift in business objectives, process streamlining, company acquisition, or acquiring new customers. Modifying an existing business process or developing a new business process to accommodate changes is often a complex task. Usually, business processes are heavily dependent on computer software for their implementation. Thus, modifying an existing business process or creating a new one typically requires the involvement of people with two distinct kinds of knowledge: people with knowledge about technology and software, and people with knowledge about business. In the typical course of things, a “business process expert” puts forward a set of business requirements, and a “technology expert” modifies or develops software and associated technologies to meet the requirements.
However, because each of the above actors is skilled in a different domain, each faces difficulties in fully supporting the other's role. For example, the business process expert is usually not familiar with technology and thus may give inadequate guidance to the technology expert. Similarly, the technology expert often has an inadequate understanding of the business side of things. This mutual lack of understanding may lead to, for example, wasted effort or an unsuitable technical implementation. The latter in turn can lead to, among other things, an unnecessarily extended business process development cycle, and the costs, such as lost revenue and unhappy customers, associated with this.
Software tools, sometimes called “process modeling” tools, are known for assisting in the development of business processes. However, such tools typically require a process modeler to know what “services” (e.g., computer software) are available to implement the process, and to generate code to call the services if available. Often, testing the new process (e.g. by simulation) can only be done once this coding is done. Thus, known process modeling tools can increase costs and extend the business process development cycle.